﻿Public Class ABM_Proveedores
    Dim acceso As New acceso
    Dim comando As New SqlClient.SqlCommand
    Dim esnuevo As Boolean
    Dim proveedor As New Proveedor()

    Private Sub ABM_Proveedores_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        habilitacion(True)
        cargarGrilla()
        blanquear()
        esnuevo = True
        acceso.cargarCombo(cmb_tipoDoc, "TipoDocumento", "nombre", "idTipoDocumento")
        acceso.cargarCombo(cmb_provincia, "Provincia", "nombre", "idProvincia")
        acceso.cargarCombo(cmb_responsable_inscripto, "ResponsableInscripto", "nombre", "idResponsable")
        cmb_provincia.SelectedValue = 6
        txt_nombre.Focus()

    End Sub
    Private Sub habilitacion(ByVal x As Boolean)
        DatosProveedor.Enabled = x
        btn_eliminar.Enabled = x
        btn_guardar.Enabled = x

    End Sub
    Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click
        If MessageBox.Show("¿ Desea salir del ABM de Proveedores ?", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            Me.Close()
        End If
    End Sub
    Private Sub blanquear()
        txt_razon_social.Text = ""
        msk_cuit.Text = ""
        txt_nombre.Text = ""
        txt_apellido.Text = ""
        txt_email.Text = ""
        msk_nroDoc.Text = ""
        txt_calle.Text = ""
        msk_numeroCalle.Text = ""
        msk_piso.Text = ""
        txt_barrio.Text = ""
        txt_idDireccion.Text = ""
        txt_idProveedor.Text = ""
        txt_idPersona.Text = ""
        txt_idTelefono.Text = ""
        cmb_tipoDoc.SelectedValue = 1
        cmb_responsable_inscripto.SelectedValue = 1
        cmb_provincia.SelectedValue = 6
        dgv_Telefonos.DataSource = ""
        If dgv_Proveedores.SelectedRows.Count <> 0 Then
            dgv_Proveedores.ClearSelection()
        End If



    End Sub
    Private Sub btn_nuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_nuevo.Click
        DatosProveedor.Enabled = True
        blanquear()
        btn_guardar.Enabled = True
        txt_razon_social.Focus()
        esnuevo = True


    End Sub

    Private Sub dgv_Proveedores_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgv_Proveedores.Click
        If dgv_Proveedores.SelectedRows.Count <> 0 Then
            txt_idProveedor.Text = dgv_Proveedores.SelectedRows(0).Cells("nroProveedor").Value.ToString
            txt_idPersona.Text = dgv_Proveedores.SelectedRows(0).Cells("idPersona").Value
            txt_idDireccion.Text = dgv_Proveedores.SelectedRows(0).Cells("idDireccion").Value
            txt_razon_social.Text = dgv_Proveedores.SelectedRows(0).Cells("razonSocial").Value
            msk_cuit.Text = dgv_Proveedores.SelectedRows(0).Cells("cuit").Value
            cmb_responsable_inscripto.SelectedValue = dgv_Proveedores.SelectedRows(0).Cells("idResponsable").Value
            txt_nombre.Text = dgv_Proveedores.SelectedRows(0).Cells("nombre").Value.ToString
            txt_apellido.Text = dgv_Proveedores.SelectedRows(0).Cells("apellido").Value.ToString
            cmb_tipoDoc.SelectedValue = dgv_Proveedores.SelectedRows(0).Cells("idTipoDocumento").Value.ToString
            msk_nroDoc.Text = dgv_Proveedores.SelectedRows(0).Cells("documento").Value
            txt_email.Text = dgv_Proveedores.SelectedRows(0).Cells("email").Value
            txt_barrio.Text = dgv_Proveedores.SelectedRows(0).Cells("barrio").Value
            txt_calle.Text = dgv_Proveedores.SelectedRows(0).Cells("calle").Value
            msk_numeroCalle.Text = dgv_Proveedores.SelectedRows(0).Cells("numero").Value
            msk_piso.Text = dgv_Proveedores.SelectedRows(0).Cells("piso").Value
            txt_depto.Text = dgv_Proveedores.SelectedRows(0).Cells("departamento").Value

            cmb_provincia.SelectedValue = dgv_Proveedores.SelectedRows(0).Cells("idProvincia").Value
            cmb_localidad.SelectedValue = dgv_Proveedores.SelectedRows(0).Cells("idLocalidad").Value
            esnuevo = False
            cargarGrillaTelefonos()
        End If

    End Sub

    Private Sub cargarGrillaTelefonos()
        Dim tabla As New Data.DataTable()
        If txt_idPersona.Text = "" Then
            tabla = acceso.ejecutar("Select * FROM Vista_Telefonos Where idPersona is null")
        Else
            tabla = acceso.ejecutar("Select * FROM Vista_Telefonos Where idPersona = " & txt_idPersona.Text)
        End If
        dgv_Telefonos.DataSource = tabla
        acomodarGrillaTelefonos()

    End Sub
    Private Sub acomodarGrillaTelefonos()
        dgv_Telefonos.Columns("numero").HeaderText = "Telefono"
        dgv_Telefonos.Columns("numero").Width = 70
        dgv_Telefonos.Columns("nombre").HeaderText = "Tipo Telefono"
        dgv_Telefonos.Columns("nombre").Width = 100
        dgv_Telefonos.Columns("idTelefono").Visible = False
        dgv_Telefonos.Columns("idPersona").Visible = False
        dgv_Telefonos.Columns("idTipoTelefono").Visible = False
    End Sub

    Private Sub cmb_provincia_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_provincia.SelectedIndexChanged
        If cmb_provincia.SelectedIndex <> 0 Then
            cargaLocalidades(cmb_provincia.SelectedValue)
        End If
    End Sub
    Private Sub cargarGrilla()

        Dim tabla As New Data.DataTable()
        tabla = acceso.leo_tabla("VistaProveedores")
        dgv_Proveedores.DataSource = tabla
        acomodarGrilla()
    End Sub
    Private Sub acomodarGrilla()
        dgv_Proveedores.Columns("nroProveedor").HeaderText = "Nº Proveedor"
        dgv_Proveedores.Columns("razonSocial").HeaderText = "Razón Social"
        dgv_Proveedores.Columns("cuit").HeaderText = "CUIT"
        dgv_Proveedores.Columns("responsableInscripto").HeaderText = "Responsable Inscripto"
        dgv_Proveedores.Columns("nombre").HeaderText = "Nombre Contacto"
        dgv_Proveedores.Columns("apellido").HeaderText = "Apellido Contacto"
        dgv_Proveedores.Columns("tipoDoc").HeaderText = "Tipo Documento"
        dgv_Proveedores.Columns("documento").HeaderText = "Nº Documento"
        dgv_Proveedores.Columns("email").HeaderText = "Email"
        dgv_Proveedores.Columns("barrio").HeaderText = "Barrio"
        dgv_Proveedores.Columns("calle").HeaderText = "Calle"
        dgv_Proveedores.Columns("numero").HeaderText = "Numero"
        dgv_Proveedores.Columns("piso").HeaderText = "Piso"
        dgv_Proveedores.Columns("departamento").HeaderText = "Depto"
        dgv_Proveedores.Columns("localidad").HeaderText = "Localidad"
        dgv_Proveedores.Columns("provincia").HeaderText = "Provincia"
        dgv_Proveedores.Columns("nroProveedor").Width = 80
        dgv_Proveedores.Columns("tipoDoc").Width = 50
        dgv_Proveedores.Columns("documento").Width = 80
        dgv_Proveedores.Columns("numero").Width = 40
        dgv_Proveedores.Columns("piso").Width = 30
        dgv_Proveedores.Columns("departamento").Width = 50
        dgv_Proveedores.Columns("idTipoDocumento").Visible = False
        dgv_Proveedores.Columns("idLocalidad").Visible = False
        dgv_Proveedores.Columns("idProvincia").Visible = False
        dgv_Proveedores.Columns("idPersona").Visible = False
        dgv_Proveedores.Columns("idDireccion").Visible = False
        dgv_Proveedores.Columns("idResponsable").Visible = False

    End Sub


    Private Sub cargaLocalidades(ByVal idProvincia As String)

        cmb_localidad.DataSource = acceso.ejecutar("SELECT * FROM Localidad WHERE idProvincia = " + idProvincia + "Order by nombre")
        cmb_localidad.DisplayMember = "nombre"
        cmb_localidad.ValueMember = "idLocalidad"

    End Sub

    Private Sub btn_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_guardar.Click

        If txt_razon_social.Text = "" Then
            MessageBox.Show("El campo Razon Social no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_razon_social.Focus()
            Return
        End If
        If msk_cuit.Text = "" Then
            MessageBox.Show("El campo CUIT no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            msk_cuit.Focus()
            Return
        End If
        If txt_nombre.Text = "" Then
            MessageBox.Show("El campo Nombre de Contacto no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_nombre.Focus()
            Return
        End If
        If txt_apellido.Text = "" Then
            MessageBox.Show("El campo Apellido no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_apellido.Focus()
            Return
        End If
        If msk_nroDoc.Text = "" Then
            MessageBox.Show("El campo Número de Documento no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            msk_nroDoc.Focus()
            Return
        End If
        If txt_email.Text = "" Then
            MessageBox.Show("El campo Email no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_email.Focus()
            Return
        End If
        If cmb_localidad.SelectedIndex = -1 Then
            MessageBox.Show("Debe seleccionar alguna Localidad", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            cmb_localidad.Focus()
            Return
        End If
        If cmb_responsable_inscripto.SelectedIndex = -1 Then
            MessageBox.Show("Debe seleccionar alguna condición de Responsable Inscripto del proveedor", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            cmb_responsable_inscripto.Focus()
            Return
        End If
        If txt_barrio.Text = "" Then
            MessageBox.Show("El campo Barrio no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_barrio.Focus()
            Return
        End If
        If txt_calle.Text = "" Then
            MessageBox.Show("El campo Calle no puequede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_calle.Focus()
            Return
        End If
        If msk_numeroCalle.Text = "" Then
            MessageBox.Show("El campo Nro. no puede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            msk_numeroCalle.Focus()
            Return
        End If
        'If msk_piso.Text = "" Then
        '    MessageBox.Show("El campo Piso no puequede quedar vacio, porfavor escriba uno.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        '    msk_piso.Focus()
        '    Return
        'End If

        proveedor._razonSocial = txt_razon_social.Text
        proveedor._cuit = msk_cuit.Text
        proveedor._Responsable._idResponsable = Int(cmb_responsable_inscripto.SelectedValue)
        proveedor._nombre = txt_nombre.Text
        proveedor._apellido = txt_apellido.Text
        proveedor._tipoDocumento._idTipoDocumento = Int(cmb_tipoDoc.SelectedValue)
        proveedor._documento = msk_nroDoc.Text
        proveedor._email = txt_email.Text
        proveedor._direccion._calle = txt_calle.Text
        proveedor._direccion._numero = msk_numeroCalle.Text
        proveedor._direccion._barrio = txt_barrio.Text
        If msk_piso.Text = "" Then
            proveedor._direccion._piso = 0
        Else
            proveedor._direccion._piso = msk_piso.Text
        End If

        proveedor._direccion._departamento = txt_depto.Text
        proveedor._direccion._localidad._idLocalidad = Int(cmb_localidad.SelectedValue.ToString)
        proveedor._direccion._localidad._provincia._idProvincia = Int(cmb_provincia.SelectedValue.ToString)

        If esnuevo = True Then
            insertProveedor(proveedor)
            MessageBox.Show("Nuevo Proveedor cargado con exito", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.None)
            cargarGrilla()
            blanquear()
        Else
            proveedor._idProveedor = txt_idProveedor.Text
            proveedor._direccion._idDireccion = txt_idDireccion.Text
            proveedor._idPersona = txt_idPersona.Text
            updateProveedor(proveedor)
            MessageBox.Show("Proveedor actualizado con exito", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.None)
            cargarGrilla()
            blanquear()
        End If
    End Sub

    'Public Sub updateEmpleado(ByVal empleado As Empleado)
    '    Dim sql As String
    '    sql = "UPDATE Producto SET nombre = @nombre, descripcion = @descripcion, stockRiesgo = @stockRiesgo"
    '    sql &= ", precio = @precio, idUnidad = @unidad, idTipoProducto = @tipoProducto, idMarca = @marca where codProducto = @codProducto"
    '    comando = New Data.SqlClient.SqlCommand
    '    comando.Parameters.AddWithValue("@nombre", producto._nombre)
    '    comando.Parameters.AddWithValue("@descripcion", producto._descripcion)
    '    comando.Parameters.AddWithValue("@stockRiesgo", producto._stockRiesgo)
    '    comando.Parameters.AddWithValue("@precio", producto._precio)
    '    comando.Parameters.AddWithValue("@unidad", producto._Unidad._idUnidadMedida)
    '    comando.Parameters.AddWithValue("@tipoProducto", producto._tipoProducto._idTipoProducto)
    '    comando.Parameters.AddWithValue("@marca", producto._marca._idMarca)
    '    comando.Parameters.AddWithValue("@codProducto", producto._codProducto)
    '    acceso.ejecutarActualizaciones(sql, comando)
    'End Sub


    Public Sub insertProveedor(ByVal prov As Proveedor)
        Dim sql As String
        Dim tabla As Data.DataTable
        'Creo cadena de insercion para cargar la tabla Direccion
        sql = "Insert INTO Direccion (calle,numero,idLocalidad,barrio,piso,departamento)"
        sql &= " VALUES (@calle,@numero,@idLocalidad,@barrio,@piso,@departamento)"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@calle", prov._direccion._calle)
        comando.Parameters.AddWithValue("@numero", prov._direccion._numero)
        comando.Parameters.AddWithValue("@idLocalidad", prov._direccion._localidad._idLocalidad)
        comando.Parameters.AddWithValue("@barrio", prov._direccion._barrio)
        comando.Parameters.AddWithValue("@piso", prov._direccion._piso)
        comando.Parameters.AddWithValue("@departamento", prov._direccion._departamento)
        acceso.ejecutarActualizaciones(sql, comando)

        'Creo cadena de insercion para cargar la tabla Persona
        tabla = acceso.ejecutar("SELECT * FROM Direccion WHERE IdDireccion = IDENT_CURRENT('Direccion')")
        Dim idDireccion As String = tabla.Rows.Item(0).Item(0).ToString()
        sql = "Insert INTO Persona (nombre,apellido,email,documento,idTipoDocumento,idDireccion)"
        sql &= " VALUES (@nombre , @apellido ,@email,@documento,@idTipoDocumento, @idDireccion)"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@nombre", prov._nombre)
        comando.Parameters.AddWithValue("@apellido", prov._apellido)
        comando.Parameters.AddWithValue("@email", prov._email)
        comando.Parameters.AddWithValue("@documento", prov._documento)
        comando.Parameters.AddWithValue("@idTipoDocumento", prov._tipoDocumento._idTipoDocumento)
        comando.Parameters.AddWithValue("@idDireccion", idDireccion)
        acceso.ejecutarActualizaciones(sql, comando)

        'Creo cadena de insercion para cargar la tabla Telefono
        tabla = acceso.ejecutar("SELECT * FROM Persona WHERE IdPersona = IDENT_CURRENT('Persona')")
        Dim idPersona As String = tabla.Rows.Item(0).Item(0).ToString()
        sql = "UPDATE Telefono SET idPersona = @idPersona where idPersona is NULL"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@idPersona", idPersona)
        acceso.ejecutarActualizaciones(sql, comando)

        'Creo cadena de insercion para cargar la tabla Proveedor
        tabla = acceso.ejecutar("SELECT * FROM Persona WHERE IdPersona = IDENT_CURRENT('Persona')")
        sql = "Insert INTO Proveedor (idPersona, razonSocial, cuit, idResponsable)"
        sql &= " VALUES (@idPersona, @razonSocial, @cuit, @idResponsable)"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@idPersona", idPersona)
        comando.Parameters.AddWithValue("@razonSocial", prov._razonSocial)
        comando.Parameters.AddWithValue("@cuit", prov._cuit)
        comando.Parameters.AddWithValue("@idResponsable", prov._Responsable._idResponsable)
        acceso.ejecutarActualizaciones(sql, comando)
    End Sub

    Public Sub updateProveedor(ByVal prov As Proveedor)
        Dim sql As String

        sql = "UPDATE Persona SET nombre = @nombre,apellido = @apellido,email = @email,documento = @documento,idTipoDocumento = @idTipoDocumento,idDireccion = @idDireccion where idPersona=@idPersona"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@idPersona", prov._idPersona.ToString)
        comando.Parameters.AddWithValue("@nombre", prov._nombre)
        comando.Parameters.AddWithValue("@apellido", prov._apellido)
        comando.Parameters.AddWithValue("@email", prov._email)
        comando.Parameters.AddWithValue("@documento", prov._documento)
        comando.Parameters.AddWithValue("@idTipoDocumento", prov._tipoDocumento._idTipoDocumento)
        comando.Parameters.AddWithValue("@idDireccion", prov._direccion._idDireccion)
        acceso.ejecutarActualizaciones(sql, comando)

        sql = "UPDATE Proveedor SET razonSocial = @razonSocial,cuit = @cuit,idResponsable = @idResponsable where idPersona=@idPersona"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@idPersona", prov._idPersona.ToString)
        comando.Parameters.AddWithValue("@razonSocial", prov._razonSocial)
        comando.Parameters.AddWithValue("@cuit", prov._cuit)
        comando.Parameters.AddWithValue("@idResponsable", prov._Responsable._idResponsable)
        acceso.ejecutarActualizaciones(sql, comando)

        sql = "UPDATE Direccion SET calle = @calle,numero = @numero,idLocalidad = @idLocalidad,barrio = @barrio,piso = @piso,departamento = @departamento where idDireccion= @idDireccion"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@idDireccion", prov._direccion._idDireccion.ToString)
        comando.Parameters.AddWithValue("@calle", prov._direccion._calle)
        comando.Parameters.AddWithValue("@numero", prov._direccion._numero)
        comando.Parameters.AddWithValue("@idLocalidad", prov._direccion._localidad._idLocalidad)
        comando.Parameters.AddWithValue("@barrio", prov._direccion._barrio)
        comando.Parameters.AddWithValue("@piso", prov._direccion._piso)
        comando.Parameters.AddWithValue("@departamento", prov._direccion._departamento)
        acceso.ejecutarActualizaciones(sql, comando)



    End Sub



    Private Sub btn_eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_eliminar.Click
        If dgv_Proveedores.SelectedRows.Count <> 0 Then
            proveedor._idProveedor = dgv_Proveedores.SelectedRows(0).Cells("nroProveedor").Value
            proveedor._razonSocial = dgv_Proveedores.SelectedRows(0).Cells("razonSocial").Value
            proveedor._nombre = dgv_Proveedores.SelectedRows(0).Cells("nombre").Value
            proveedor._apellido = dgv_Proveedores.SelectedRows(0).Cells("apellido").Value
            proveedor._idPersona = dgv_Proveedores.SelectedRows(0).Cells("idPersona").Value
            proveedor._direccion._idDireccion = dgv_Proveedores.SelectedRows(0).Cells("idDireccion").Value
            If MessageBox.Show("Esta seguro de querer eliminar el proveedor: " & proveedor._razonSocial & vbLf & " con ID: " & proveedor._idProveedor _
            , "ATENCION", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes Then
                Dim sql As String
                'AL ESTAR EN VARIAS TABLAS LOS VALORES DEEBEN ELIMIARSE EN CADA UNA POR SEPARADO Y EN ORDEM, 
                '1-PROVEEDOR
                '2-TELEFONO
                '3-PERSONA
                '4-DIRECCION
                sql = "DELETE Proveedor WHERE nroProveedor = @nroProveedor"
                comando = New Data.SqlClient.SqlCommand
                comando.Parameters.AddWithValue("@nroProveedor", proveedor._idProveedor)
                acceso.ejecutarActualizaciones(sql, comando)

                sql = "DELETE Telefono WHERE idPersona = @idPersona"
                comando = New Data.SqlClient.SqlCommand
                comando.Parameters.AddWithValue("@idPersona", proveedor._idPersona)
                acceso.ejecutarActualizaciones(sql, comando)

                sql = "DELETE Persona WHERE idPersona = @idPersona"
                comando = New Data.SqlClient.SqlCommand
                comando.Parameters.AddWithValue("@idPersona", proveedor._idPersona)
                acceso.ejecutarActualizaciones(sql, comando)

                sql = "DELETE Direccion WHERE idDireccion = @idDireccion"
                comando = New Data.SqlClient.SqlCommand
                comando.Parameters.AddWithValue("@idDireccion", proveedor._direccion._idDireccion)
                acceso.ejecutarActualizaciones(sql, comando)

                cargarGrilla()
                blanquear()
                esnuevo = True

            End If

        End If
    End Sub




    Private Sub txt_depto_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txt_depto.KeyUp

        txt_depto.Text = txt_depto.Text.ToUpper
        txt_depto.Select(txt_depto.Text.Length, 0)
    End Sub









    Public Sub validarTextBox(ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub
    Private Sub txt_nombre_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_nombre.KeyPress
        validarTextBox(e)
    End Sub

    Private Sub txt_apellido_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_apellido.KeyPress
        validarTextBox(e)
    End Sub

    Private Sub txt_barrio_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_barrio.KeyPress
        validarTextBox(e)
    End Sub

    Private Sub txt_calle_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_calle.KeyPress
        validarTextBox(e)
    End Sub


    Private Sub btn_Telefonos_Click(sender As System.Object, e As System.EventArgs) Handles btn_Telefonos.Click
        Dim idPers As Integer
        If txt_idPersona.Text = "" Then
            idPers = Nothing
        Else
            idPers = txt_idPersona.Text
        End If
        Dim Telefonos As New ABM_Telefonos()
        Telefonos._idPersona = idPers
        Telefonos.ShowDialog()
        cargarGrillaTelefonos()
    End Sub

    Private Sub cmb_localidad_Leave(sender As System.Object, e As System.EventArgs) Handles cmb_localidad.Leave
        If cmb_localidad.SelectedIndex = -1 Then
            cmb_localidad.Focus()
        End If
    End Sub

    Private Sub cmb_provincia_Leave(sender As System.Object, e As System.EventArgs) Handles cmb_provincia.Leave
        If cmb_provincia.SelectedIndex = -1 Then
            cmb_provincia.Focus()
        End If
        If cmb_provincia.SelectedIndex <> -1 Then
            cargaLocalidades(cmb_provincia.SelectedValue)
        End If
    End Sub
End Class